+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
+2001-06-22 Hans Breuer <hans@breuer.org>
+
+ * gdk/gdk.def : updated externals
+
+ * gdk/win32/gdkdrawable-win32.c : corrected some casts
+ in GDK_NOTEs
+
+ * gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
+ to translate coordinates to the internal > 16 bit system
+ Try to handle WM_WINDOWPOSCHANGED to get better performance for
+ when moving/resizing
+
+ * gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
+ and gdk_keymap_get_direction (). The latter is untested for
+ the RTL case
+
+ * gtk/gtk.def : updated externals
+
+ * gtk/gtkmain.c : gtk_get_default_language () should reurn the result
+ from pango_language_from_string (), not an already freed pointer
+
+ * gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
+ binary (-kb) to be useable on windoze
+
2001-06-21 Alexander Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
gdk_keyboard_grab
gdk_keyboard_ungrab
gdk_keymap_get_default
+ gdk_keymap_get_direction
gdk_keymap_get_entries_for_keycode
gdk_keymap_get_entries_for_keyval
gdk_keymap_get_type
gdk_property_get
gdk_query_depths
gdk_query_visual_types
+ gdk_rectangle_get_type
gdk_rectangle_intersect
gdk_rectangle_union
gdk_region_destroy
int nXStartArc, nYStartArc, nXEndArc, nYEndArc;
GDK_NOTE (MISC, g_print ("gdk_draw_arc: %#x %d,%d,%d,%d %d %d\n",
- (guint) GDK_DRAWABLE_HANDLE (drawable),
+ (guint) GDK_DRAWABLE_IMPL_WIN32 (drawable)->handle,
x, y, width, height, angle1, angle2));
/* Seems that drawing arcs with width or height <= 2 fails, at least
int i;
GDK_NOTE (MISC, g_print ("gdk_win32_draw_polygon: %#x (%p) %d\n",
- (guint) GDK_DRAWABLE_HANDLE (drawable),
+ (guint) GDK_DRAWABLE_IMPL_WIN32 (drawable)->handle,
gc_private,
npoints));
fg = gdk_colormap_color (impl->colormap, gc_private->foreground);
GDK_NOTE (MISC, g_print ("gdk_draw_points: %#x %dx%.06x\n",
- (guint) GDK_DRAWABLE_HANDLE (drawable),
+ (guint) GDK_DRAWABLE_IMPL_WIN32 (drawable)->handle,
npoints, (guint) fg));
for (i = 0; i < npoints; i++)
int i;
GDK_NOTE (MISC, g_print ("gdk_win32_draw_segments: %#x nsegs: %d\n",
- (guint) GDK_DRAWABLE_HANDLE (drawable), nsegs));
+ (guint) GDK_DRAWABLE_IMPL_WIN32 (drawable)->handle, nsegs));
hdc = gdk_win32_hdc_get (drawable, gc, mask);
{
LRESULT retval;
- GDK_NOTE (EVENTS, g_print ("gdk_window_procedure: %#lx %s\n",
+ GDK_NOTE (MISC, g_print ("gdk_window_procedure: %#lx %s\n",
(gulong) hwnd, gdk_win32_message_name (message)));
retval = real_window_procedure (hwnd, message, wparam, lparam);
- GDK_NOTE (EVENTS, g_print ("gdk_window_procedure: %#lx returns %ld\n",
+ GDK_NOTE (MISC, g_print ("gdk_window_procedure: %#lx returns %ld\n",
(gulong) hwnd, retval));
return retval;
GdkColormapPrivateWin32 *colormap_private;
GdkPixmap *pixmap;
GdkPixmapImplWin32 *pixmap_impl;
+ gint xoffset, yoffset;
int button;
int i, j;
if (result != GDK_FILTER_CONTINUE)
{
return_val = (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE;
- *ret_val_flagp = TRUE;
- *ret_valp = return_val;
+ if (ret_val_flagp)
+ *ret_val_flagp = TRUE;
+ if (ret_valp)
+ *ret_valp = return_val;
goto done;
}
}
+ /* to translate coordinates to the internal > 16 bit system */
+ _gdk_windowing_window_get_offsets (window, &xoffset, &yoffset);
+
if (msg->message == gdk_selection_notify_msg)
{
GDK_NOTE (EVENTS, g_print ("gdk_selection_notify_msg: %#lx\n",
GDK_SCROLL_UP : GDK_SCROLL_DOWN;
event->scroll.window = window;
event->scroll.time = msg->time;
- event->scroll.x = (gint16) pt.x;
- event->scroll.y = (gint16) pt.y;
+ event->scroll.x = (gint16) pt.x + xoffset;
+ event->scroll.y = (gint16) pt.y + yoffset;
event->scroll.x_root = (gint16) LOWORD (msg->lParam);
event->scroll.y_root = (gint16) HIWORD (msg->lParam);
event->scroll.state = 0; /* No state information with MSH_MOUSEWHEEL */
translate_mouse_coords (orig_window, window, msg);
event->button.x = current_x = (gint16) LOWORD (msg->lParam);
event->button.y = current_y = (gint16) HIWORD (msg->lParam);
+ event->button.x += xoffset; /* XXX translate current_x, y too? */
+ event->button.y += yoffset;
event->button.x_root = msg->pt.x;
event->button.y_root = msg->pt.y;
event->button.axes = NULL;
event->button.time = msg->time;
if (window != orig_window)
translate_mouse_coords (orig_window, window, msg);
- event->button.x = (gint16) LOWORD (msg->lParam);
- event->button.y = (gint16) HIWORD (msg->lParam);
+ event->button.x = (gint16) LOWORD (msg->lParam) + xoffset;
+ event->button.y = (gint16) HIWORD (msg->lParam) + yoffset;
event->button.x_root = msg->pt.x;
event->button.y_root = msg->pt.y;
event->button.axes = NULL;
translate_mouse_coords (orig_window, window, msg);
event->motion.x = current_x = (gint16) LOWORD (msg->lParam);
event->motion.y = current_y = (gint16) HIWORD (msg->lParam);
+ event->motion.x += xoffset;
+ event->motion.y += yoffset;
event->motion.x_root = current_x_root = msg->pt.x;
event->motion.y_root = current_y_root = msg->pt.y;
event->motion.axes = NULL;
event->crossing.window = current_window;
event->crossing.subwindow = NULL;
event->crossing.time = msg->time;
- event->crossing.x = current_x;
- event->crossing.y = current_y;
+ event->crossing.x = current_x + xoffset; /* XXX translated current_x */
+ event->crossing.y = current_y + yoffset;
event->crossing.x_root = current_x_root;
event->crossing.y_root = current_y_root;
event->crossing.mode = GDK_CROSSING_NORMAL;
GDK_SCROLL_UP : GDK_SCROLL_DOWN;
event->scroll.window = window;
event->scroll.time = msg->time;
- event->scroll.x = (gint16) pt.x;
- event->scroll.y = (gint16) pt.y;
+ event->scroll.x = (gint16) pt.x + xoffset;
+ event->scroll.y = (gint16) pt.y + yoffset;
event->scroll.x_root = (gint16) LOWORD (msg->lParam);
event->scroll.y_root = (gint16) HIWORD (msg->lParam);
event->scroll.state = build_pointer_event_state (msg);
event->crossing.window = window;
event->crossing.subwindow = NULL;
event->crossing.time = msg->time;
- event->crossing.x = current_x;
- event->crossing.y = current_y;
+ event->crossing.x = current_x + xoffset; /* XXX translated current_x */
+ event->crossing.y = current_y + yoffset;
event->crossing.x_root = current_xroot;
event->crossing.y_root = current_yroot;
event->crossing.mode = GDK_CROSSING_NORMAL;
if (GDK_WINDOW_OBJECT (window)->input_only)
break;
+ if (!(window_impl->event_mask & GDK_EXPOSURE_MASK))
+ break;
+
+ if (GDK_WINDOW_OBJECT (window)->bg_pixmap == GDK_NO_BG)
+ break;
+
hdc = BeginPaint (msg->hwnd, &paintstruct);
GDK_NOTE (EVENTS,
EndPaint (msg->hwnd, &paintstruct);
- if (!(window_impl->event_mask & GDK_EXPOSURE_MASK))
- break;
-
if ((paintstruct.rcPaint.right == paintstruct.rcPaint.left)
|| (paintstruct.rcPaint.bottom == paintstruct.rcPaint.top))
break;
{
GdkRectangle expose_rect;
- expose_rect.x = paintstruct.rcPaint.left;
- expose_rect.y = paintstruct.rcPaint.top;
+ expose_rect.x = paintstruct.rcPaint.left + xoffset;
+ expose_rect.y = paintstruct.rcPaint.top + yoffset;
expose_rect.width = paintstruct.rcPaint.right - paintstruct.rcPaint.left;
expose_rect.height = paintstruct.rcPaint.bottom - paintstruct.rcPaint.top;
return_val = !GDK_WINDOW_DESTROYED (window);
}
break;
+#if 0 /* not quite right, otherwise it may be faster/better than WM_(MOVE|SIZE)
+ * remove decoration (frame) sizes ?
+ */
+ case WM_WINDOWPOSCHANGED :
+
+ if (!(window_impl->event_mask & GDK_STRUCTURE_MASK))
+ break;
+ if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD
+ && !IsIconic(msg->hwnd)
+ && IsWindowVisible(msg->hwnd))
+ {
+ LPWINDOWPOS lpwp = (LPWINDOWPOS) (msg->lParam);
+
+ event->configure.type = GDK_CONFIGURE;
+ event->configure.window = window;
+ event->configure.x = lpwp->x;
+ event->configure.y = lpwp->y;
+ event->configure.width = lpwp->cx;
+ event->configure.height = lpwp->cy;
+ GDK_WINDOW_OBJECT (window)->x = event->configure.x;
+ GDK_WINDOW_OBJECT (window)->y = event->configure.y;
+ window_impl->width = event->configure.width;
+ window_impl->height = event->configure.height;
+
+ return_val = !GDK_WINDOW_DESTROYED (window);
+
+ GDK_NOTE (EVENTS, g_print ("WM_WINDOWPOSCHANGED: %#lx %ldx%ld@+%ld+%ld\n",
+ (gulong) msg->hwnd,
+ lpwp->cx, lpwp->cy, lpwp->x, lpwp->y));
+
+ if (ret_val_flagp)
+ *ret_val_flagp = TRUE;
+ if (ret_valp)
+ *ret_valp = 0;
+ }
+ break;
+#endif
case WM_CLOSE:
GDK_NOTE (EVENTS, g_print ("WM_CLOSE: %#lx\n", (gulong) msg->hwnd));
TranslateMessage (&msg); /* Translate virt. key codes */
DispatchMessage (&msg); /* Dispatch msg. to window */
}
+
GdiFlush ();
}
static gint keysyms_per_keycode = 0;
static GdkModifierType group_switch_mask = 0;
+static GdkKeymap *default_keymap = NULL;
+
+GdkKeymap*
+gdk_keymap_get_default (void)
+{
+ if (default_keymap == NULL)
+ default_keymap = g_object_new (gdk_keymap_get_type (), NULL);
+
+ return default_keymap;
+}
+
+PangoDirection
+gdk_keymap_get_direction (GdkKeymap *keymap)
+{
+ PangoDirection result;
+ char kln[KL_NAMELENGTH];
+ UINT acp = GetACP ();
+
+ /* XXX : all this is untested, so if you are using a RTL language
+ * please provide patches/hints if your cursor blinks at
+ * the wrong place ...
+ */
+ if (!GetKeyboardLayoutName(kln))
+ strcpy (kln, "?");
+
+ switch (acp) {
+ case 1255 : /* Hebrew */
+ case 1256 : /* Arabic */
+ result = PANGO_DIRECTION_RTL;
+ break;
+ default :
+ result = PANGO_DIRECTION_LTR;
+ }
+
+ GDK_NOTE (MISC,
+ g_print ("gdk_keymap_get_direction: selecting %s for '%s'\n",
+ result == PANGO_DIRECTION_LTR ? "LTR" : "RTL", kln));
+
+ return result;
+}
/**
* gdk_keymap_get_entries_for_keyval:
GTK_TYPE_TREE_VIEW_COLUMN_SIZING
GTK_TYPE_TREE_VIEW_DROP_POSITION
GTK_TYPE_TREE_VIEW_MODE
- GTK_TYPE_TROUGH_TYPE
GTK_TYPE_UPDATE_TYPE
GTK_TYPE_VISIBILITY
GTK_TYPE_WIDGET_FLAGS
gtk_alignment_get_type
gtk_alignment_new
gtk_alignment_set
- gtk_arg_name_strip_type
- gtk_args_collect_cleanup
gtk_arrow_get_type
gtk_arrow_new
gtk_arrow_set
gtk_combo_set_use_arrows_always
gtk_combo_set_value_in_list
gtk_container_add
- gtk_container_add_child_arg_type
- gtk_container_add_with_args
- gtk_container_addv
- gtk_container_arg_get
- gtk_container_arg_set
gtk_container_check_resize
- gtk_container_child_arg_get_info
gtk_container_child_composite_name
- gtk_container_child_getv
gtk_container_child_set
- gtk_container_child_setv
gtk_container_child_type
gtk_container_children
gtk_container_clear_resize_widgets
gtk_container_dequeue_resize_handler
- gtk_container_focus
gtk_container_forall
gtk_container_foreach
gtk_container_foreach_full
gtk_container_get_type
- gtk_container_query_child_args
gtk_container_queue_resize
gtk_container_remove
gtk_container_resize_children
gtk_option_menu_remove_menu
gtk_option_menu_set_history
gtk_option_menu_set_menu
- gtk_packer_add
- gtk_packer_add_defaults
- gtk_packer_get_type
- gtk_packer_new
- gtk_packer_reorder_child
- gtk_packer_set_child_packing
- gtk_packer_set_default_border_width
- gtk_packer_set_default_ipad
- gtk_packer_set_default_pad
- gtk_packer_set_spacing
gtk_paint_arrow
gtk_paint_box
gtk_paint_box_gap
gtk_rc_get_module_dir
gtk_rc_get_style
gtk_rc_get_theme_dir
- gtk_rc_init
- gtk_rc_load_image
gtk_rc_parse
gtk_rc_parse_color
gtk_rc_parse_priority
gtk_rc_property_parse_flags
gtk_rc_reparse_all
gtk_rc_set_default_files
- gtk_rc_set_image_loader
gtk_rc_style_copy
gtk_rc_style_get_type
gtk_rc_style_new
gtk_ruler_get_type
gtk_ruler_set_metric
gtk_ruler_set_range
- gtk_scale_draw_value
+ gtk_scale_get_digits
gtk_scale_get_type
- gtk_scale_get_value_width
gtk_scale_set_digits
gtk_scale_set_draw_value
gtk_scale_set_value_pos
gtk_spin_button_configure
gtk_spin_button_get_adjustment
gtk_spin_button_get_type
- gtk_spin_button_get_value_as_float
+ gtk_spin_button_get_value
gtk_spin_button_get_value_as_int
gtk_spin_button_new
gtk_spin_button_new_with_range
gtk_text_iter_in_range
gtk_text_iter_is_end
; gtk_text_iter_is_first
- gtk_text_iter_reorder
+ gtk_text_iter_order
gtk_text_iter_set_line
gtk_text_iter_set_line_index
gtk_text_iter_set_line_offset
gtk_tree_view_column_new_with_attributes
gtk_tree_view_column_set_alignment
gtk_tree_view_column_set_attributes
- gtk_tree_view_column_set_cell_data
+; gtk_tree_view_column_set_cell_data
gtk_tree_view_column_set_cell_data_func
gtk_tree_view_column_set_cell_renderer
gtk_tree_view_column_set_clickable
result = pango_language_from_string (lang);
g_free (lang);
- return lang;
+ return result;
}
void